import { uploadMixins } from '@/mixins/publicMixins/uploadMixins'
import { commonMixins } from '@/mixins/publicMixins/commonMixins'
export const publicMixins = {
  mixins: [commonMixins, uploadMixins],
  data() {
    return {
      // 用户 ID
      userId: this.$store.state.user.userInfo.userId,
      // user_type 用户类型（00公司用户，01项目部用户）
      user_type: this.$store.state.user.userInfo.userType,
      // 是否是超级管理员
      isAdmin: this.$store.state.user.userInfo.isAdmin,


      // ------日期 控制限制 ----------start-----------------------------------------
      // 禁止选择今日之后的日期 包含当前天
      setNowAfterDisabled: {
        disabledDate(time) {
          return time.getTime() < Date.now() - 8.64e7 // 不可选历史天、可选当前天、可选未来天
        }
      },

      // 禁止选择今日之后的日期 不包含当前天
      setNowAfterNoNowDisabled: {
        disabledDate(time) {
          return time.getTime() < Date.now() // 不可选历史天、不可选当前天、可选未来天
        }
      },

      // 禁止选择今日之前的日期 包含当前天
      setNowBeforeDisabled: {
        disabledDate(time) {
          return time.getTime() > Date.now() // 可选历史天、可选当前天、不可选未来天
        }
      },

      // 禁止选择今日之前的日期 不包含当前天
      setNowBeforeNoNowDisabled: {
        disabledDate(time) {
          return time.getTime() > Date.now() - 8.64e7 // 可选历史天、不可选当前天、不可选未来天
        }
      }
    }
  },
  computed: {
    user() {
      return this.$store.state.user
    }
  },
  methods: {
    /**
     * @description: 随机输 概率
     * @author: 张佳敏
     * @return {*}
     */
    randomFun(max, min, arrFilter) {
      // 生成0到100之间的随机函数
      var num1 = Math.random() * (max + min) + min
      var num2 = null
      if (arrFilter.length != 0) {
        arrFilter.forEach((item, index) => {
          if (item != num1) {
            num2 = Math.floor(num1)
          }
        })
      } else {
        // 0到10随机数取整
        num2 = Math.floor(num1)
      }
      return num2
    },

    /**
     * @description: 计算天数
     * @author: 张佳敏
     */
    retuenCountDay(startDate, endDate) {
      const oneDay = 24 * 60 * 60 * 1000 // 每天的毫秒数
      var projectStartDate = new Date(startDate).getTime()
      var projectEndDate = new Date(endDate).getTime()
      var countDay = null
      if (projectStartDate < projectEndDate) {
        var diff = Math.abs(projectStartDate - projectEndDate)
        countDay = Math.round(diff / oneDay)
      }
      return countDay
    },

    /**
     * @description: 更新 表格 防止错位
     * @author: 张佳敏
     */
    mixinDoLayoutHandle(refName) {
      this.$nextTick(() => {
        this.$refs[refName].doLayout()
      })
    }
  }
}
